﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Input;
using DSS_XNA.Engine.Actor;
using DSS_XNA.Engine.Entities;

namespace DSS_XNA.Engine.World
{
    public interface IWorld
    {
        Game1 Engine { get; }

        Timer.Timer LevelTimer { get; }
        List<IActor> Actors { get; }
        List<DSS_XNA.Engine.Objects.Object> Objects { get; }
        List<DSS_XNA.Engine.Objects.Object> ExpiredObjects { get; }

        Entity FocusedEntity { get; set; }

        bool Load(string filePath, Game1 engine);
        bool Render(SpriteBatch spriteBatch);
        void Destroy();
        bool Update(GameTime gameTime, KeyboardState ks, MouseState ms, GamePadState gs);

        int AddActor(IActor actor, int x, int y);

        string GetProperty(string name);
    }
}
